package com.shenda.api.service;

import java.util.concurrent.CompletableFuture;

import com.shenda.api.dto.UploadDTO;
import com.shenda.api.entity.Data;
import com.shenda.device.analysis.AnalysisQuery;
import com.shenda.device.analysis.AnalysisResult;
import com.swak.entity.Page;
import com.swak.entity.Parameters;

/**
 * 数据异步服务
 * 
 * @author lifeng
 */
public interface DatasServiceAsync {

	/**
	 * 查询结果
	 * 
	 * @param id
	 * @return result
	 */
	CompletableFuture<AnalysisResult> get(String id);

	/**
	 * 删除数据以及数据文件
	 * 
	 * @param id
	 * @return result
	 */
	CompletableFuture<Void> delete(String id);

	/**
	 * 分页显示数据
	 * 
	 * @param data
	 * @param param
	 * @return
	 */
	CompletableFuture<Page> page(Data data, Parameters param);

	/**
	 * 上传数据结果
	 * 
	 * @param data
	 * @return
	 */
	CompletableFuture<Void> save(Data data);

	/**
	 * 图标展示数据
	 * 
	 * @param data
	 * @return
	 */
	CompletableFuture<AnalysisResult> chart(AnalysisQuery query);

	/**
	 * 导入数据
	 * 
	 * @param data
	 * @return
	 */
	CompletableFuture<AnalysisResult> upload(UploadDTO upload);
}
